<html>
<head><meta charset="utf-8"><title>Leo’s async-await questions · general · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/index.html">general</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html">Leo’s async-await questions</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="159814729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159814729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159814729">(Mar 02 2019 at 21:05)</a>:</h4>
<p>Hey! Just tried to ask on IRC and got redirected to here. <span class="user-mention" data-user-id="116009">@nikomatsakis</span> , I just read your post on async-await stabilization, and wonder: how would you be able to stabilize async-await without the futures API RFC being even merged?</p>



<a name="159814820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159814820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159814820">(Mar 02 2019 at 21:07)</a>:</h4>
<p><span class="user-mention" data-user-id="210615">@Léo Gaspard</span> Here is a new "topic" for you to have this discussion on.</p>



<a name="159814956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159814956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159814956">(Mar 02 2019 at 21:11)</a>:</h4>
<p><span class="user-mention" data-user-id="123586">@nagisa</span> Thanks! I don't get zulip's UI yet, guess I'll just wait for somewhere on the screen to display an answer, then try to reply, and then happily go back to IRC :°</p>



<a name="159815091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815091">(Mar 02 2019 at 21:14)</a>:</h4>
<p>Zulip is very good!</p>
<p>To answer your question, ~technically~ <code>?</code> exists without the <code>Try</code> the related machinery being stable as well</p>



<a name="159815094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815094">(Mar 02 2019 at 21:14)</a>:</h4>
<p>So I would imagine it being possible to do the same for <code>await</code>.</p>



<a name="159815242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815242">(Mar 02 2019 at 21:18)</a>:</h4>
<p>Implementing something useful that could use the keyword would still involve nightly code, the same way implementing a <code>?</code> does.</p>



<a name="159815549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815549">(Mar 02 2019 at 21:26)</a>:</h4>
<p>I guess zulip is very good, but it's a system none of the groups I'm active in uses, it's a brand new UI with brand new concepts, and I don't particularly love the UI or idea at first sight, so it's an effort I'm not willing to make for now :)<br>
(edit: oh and it looks like threads aren't nest-able, tried to answer just your “Zulip is very good!” comment and failed to)</p>



<a name="159815574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815574">(Mar 02 2019 at 21:27)</a>:</h4>
<blockquote>
<p>it's an effort I'm not willing to make for now <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>
</blockquote>
<p>fair.</p>



<a name="159815576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815576">(Mar 02 2019 at 21:27)</a>:</h4>
<p>Now… weeeell, <code>?</code> exists because there's a useful implementer of <code>Try</code> in libstd: <code>Result</code>. AFAICT there'd be no useful implementer of <code>Futures</code> in <code>std</code>, and writing stable code that's forced to use nightly-only libraries isn't really interesting, is it?</p>



<a name="159815621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815621">(Mar 02 2019 at 21:28)</a>:</h4>
<p>I don't really get what stabilizing it right now gets us compared to just keeping the feature gate for now, if the code has to be nightly anyway</p>



<a name="159815653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815653">(Mar 02 2019 at 21:29)</a>:</h4>
<p>Perhaps stabilising indeed does not provide anything much at the moment, as you cannot do anything with the <a href="https://doc.rust-lang.org/nightly/std/future/trait.Future.html" target="_blank" title="https://doc.rust-lang.org/nightly/std/future/trait.Future.html"><code>Future</code></a> that’s in the stdlib without a nightly compiler.</p>



<a name="159815802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815802">(Mar 02 2019 at 21:33)</a>:</h4>
<p>However, do keep in mind that <code>async fn</code> does not necessarily expose to the end user that the function has the return type of <code>Future</code>, or that exposition can stay unstable without interfering with the basic <code>await that_fn(...)</code> use-scenario.</p>



<a name="159815823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815823">(Mar 02 2019 at 21:33)</a>:</h4>
<p>In general my personal feeling is that <code>await</code> won’t be stabilised any time soon either way</p>



<a name="159815881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815881">(Mar 02 2019 at 21:35)</a>:</h4>
<p>This could be seen as very similar to <code>fn foo&lt;F: Fn(...) -&gt; T&gt;</code> being stable but <code>fn foo&lt;F: Fn&lt;(...), Output=T&gt;</code> being unstable <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="159815941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159815941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159815941">(Mar 02 2019 at 21:36)</a>:</h4>
<p><a href="http://smallcultfollowing.com/babysteps/blog/2019/03/01/async-await-status-report/" target="_blank" title="http://smallcultfollowing.com/babysteps/blog/2019/03/01/async-await-status-report/">http://smallcultfollowing.com/babysteps/blog/2019/03/01/async-await-status-report/</a> appeared to point out that <code>await</code> was going to be stabilized soon, actually, which is exactly what triggered my inquiry</p>



<a name="159816001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159816001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159816001">(Mar 02 2019 at 21:38)</a>:</h4>
<p>Heh, we haven’t even decided if <code>await</code> should go in prefix or postfix the expression, to the best of my knowledge.</p>



<a name="159816094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159816094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159816094">(Mar 02 2019 at 21:40)</a>:</h4>
<p>Heh, if I read correctly, the point of this article is “just let's do like <code>try!</code>and have a regular <code>await!()</code> macro and see later”, which… given I seem to understand that it wouldn't even be possible to actually use it stably yet, sounds to me like a bad idea to have stabilized. Now, maybe I have missed <span class="user-mention" data-user-id="116009">@nikomatsakis</span> 's point :)</p>



<a name="159816130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159816130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159816130">(Mar 02 2019 at 21:41)</a>:</h4>
<p>Yeah, as the post points out there are multiple unresolved questions which is why a workgroup specifically for that has been created.</p>



<a name="159816131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159816131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159816131">(Mar 02 2019 at 21:41)</a>:</h4>
<p>I could see <code>async!()</code> being stabilised sooner.</p>



<a name="159816261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159816261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159816261">(Mar 02 2019 at 21:45)</a>:</h4>
<p>(FYI: I've moved the original question to this topic)</p>



<a name="159816396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159816396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159816396">(Mar 02 2019 at 21:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116107">@davidtwco</span> black magic!</p>



<a name="159832880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159832880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giles Cope <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159832880">(Mar 03 2019 at 05:35)</a>:</h4>
<p>If we can stabilize a usable subset of async that would be a great upgrade from where things are today. Personally I'm ok with async! macro format as it hints there's magic under the covers. The biggest question I have is what can I do to help... Ah I see I should be reading here:<a href="#narrow/stream/187312-t-compiler.2Fwg-async-await" title="#narrow/stream/187312-t-compiler.2Fwg-async-await">https://rust-lang.zulipchat.com/#narrow/stream/187312-t-compiler.2Fwg-async-await</a></p>



<a name="159857731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159857731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Gaspard <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159857731">(Mar 03 2019 at 17:50)</a>:</h4>
<p><span class="user-mention" data-user-id="120134">@Giles Cope</span> The question is what exactly would be stabilized: if the <code>Futures</code> API RFC is not stabilized (and as it's not even merged yet it can't be stabilized), then a stable subset of async wouldn't be useful for anything that I know of</p>



<a name="159858376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Leo%E2%80%99s%20async-await%20questions/near/159858376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giles Cope <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Leo.E2.80.99s.20async-await.20questions.html#159858376">(Mar 03 2019 at 18:07)</a>:</h4>
<p>I see your point, they are pretty intertwined. I was assuming that this push would be to get futures into a mvp shippable state as well as async. Async without futures would have no future? ;-)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>